const API_HOST = 'http://127.0.0.1:8080';
const WEB_HOST = 'http://127.0.0.1:8888';
// 当前目录的id
let currentFolderId = -1;
// 当前目录的父目录id
let parentFolderId = -1;
/**
 * 将文件字节数转换为可读的文件大小
 * @param {*} byte 
 */
function byte2Size(byte){
    const KB = 1024;
    const MB = 1024*1024;
    const GB = 1024*1024*1024;
    let size = '0B';
    if (byte < KB){
        size = byte + 'B';
    } else if (byte <MB){
        size = (byte/KB).toFixed(2)+'KB';
    } else if (byte < GB){
        size = (byte/MB).toFixed(2)+'MB';
    } else {
        size = (byte/GB).toFixed(2)+'GB';
    }
    return size;
}
/**
 *  校验字符串是否有特殊字符
 * @param {校验字符串}} str 
 */
function validateStr(str){
    var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？]")
    return pattern.test(str);
}
/**
 *  将后端文件列表数据转换为前端数据
 * @param {文件列表} files 
 * @param {后端文件数据列表} data 
 */
function dataConvert(files,data){
    if (data.length === 0){
        files.splice(0,files.length);
        return;
    }
    if (files.length !== 0){
        files.length = 0;
    }
    for (let  file of data) {
        if (file.type === 'folder'){
            file.fileSize = '---';
        } else {
            // 文件，转换字节数
            let fileSize = byte2Size(file.fileByte);
            file.fileSize = fileSize;
        }
        // 填充数据
        files.push(file);
    }

}
/**
 * 处理文件下载
 * @param {*} result 后端返回的对象
 * @param {*} file 前端文件记录对象
 */
function handleDownload(result,file){
    let blob = new Blob([result]);
    // 创建a标签
    let downloadElement = document.createElement('a')
    // 创建下载链接
    let href = window.URL.createObjectURL(blob) 
    downloadElement.href = href
    // 下载后文件名
    downloadElement.download = file.name 
    document.body.appendChild(downloadElement)
    // 点击下载
    downloadElement.click() 
    // 下载完成移除元素
    document.body.removeChild(downloadElement) 
     // 释放blob对象
    window.URL.revokeObjectURL(href)
}

function getImgObj2Base64(imgObj,call) {
    let read = new FileReader();
    read.onload = function(e){
      call(e.target.result);
    };
    read.readAsDataURL(imgObj);
}

export default{
    API_HOST,WEB_HOST,currentFolderId,parentFolderId,
    byte2Size,validateStr,dataConvert,
    handleDownload,getImgObj2Base64
}